﻿using System;
using System.Collections.Generic;
using Neturion.Dados;

namespace Neturion.IRepositorios
{
    public interface IRepositorioFuncionario : IRepositorio<Funcionario, int>
    {
        Funcionario ObterPorCodigo(string codigo);
        IList<Funcionario> ObterPorCargo(int inicio, int quantidade, int quantidadeMinima, Cargo cargo);
        IList<Funcionario> ObterPorSetor(int inicio, int quantidade, int quantidadeMinima, Setor setor);
        IList<Funcionario> ObterTodos(int inicio, int quantidade, int quantidadeMinima, string codigo, string descricao, string cargoCodigo, string cargoDescricao,
            string setorCodigo, string setorDescricao, decimal previsaoSalarialDe, decimal previsaoSalarialAte, decimal salarioAnteriorDe, decimal salarioAnteriorAte,
            decimal percentualUltimoReajusteDe, decimal percentualUltimoReajusteAte,
           DateTime? ultimoReajusteDe, DateTime? ultimoReajusteAte, DateTime? contratacaoDe, DateTime? contratacaoAte,
           DateTime? demissaoDe, DateTime? demissaoAte);
        IList<Funcionario> ObterPorDescricao(int inicio, int quantidade, int quantidadeMinima, string descricao);
        Funcionario ObterPorCpf(string cpf);
        Funcionario ObterPorPessoa(Pessoa pessoa);
        int ObterUltimoIdCodigoInteiro();
    }
}